
Note: there is a bug in pad in that the buttons do not generally snap back visually as 
they should. This has absolutely no effect on the operation of the pad--it's just
a visual annoyance.  If anyone has a fix for this I would be greatful to know of it.



EnigmaPad PAGE ONE Position and duration

    FIRST ROW  Alignment

	1. Opens the Edit menu quantize dialog

	2. Aligns the start times of all notes in the selection
	with the top most note in the selection.

	3. Aligns the start times of all notes in the selection
	with the bottom most note in the selection.

	4. Aligns the start times of all notes in the selection
	with the first start time note in the selection.
	
	5. Aligns the start times of all notes in the selection
	with the last start time note in the selection.

	6. Aligns the ends of notes with the starts of their following
        notes.

	
    SECOND ROW  Anticipation

	1. Advances the start times of all the notes in the selection
	by a specified number of ticks and extends the last note by
	that amount.

	2. Advances the start time of the first note in the selection
	by a specified number of ticks and extends the duration of 
	that and each following note by a decreasing amount such that
	the initial end time is maintained and the duration of the last
	note is as close to its initial value as possible.

	3. Same as 1 above except that the first note is shortened by
	the specified number of ticks and the remaining notes are
	advanced. 
	
	4. Same as 2 above except that the first note is shortened by
	the specified number of ticks and the remaining notes are
	advanced and lengthened. 

	5.  Shortens and advances all the notes in the selection by
	a specified number of ticks.

		NOT ANTICIPATION
	6. Sluring--Lengthens each note by the specified number of ticks.
        >>>>>Should be rewritten to overlap by specified number of ticks.

	NOTES, SECOND ROW:
	in 1 through 5 the number ticks may be set negative providing
	the opposite effect.

    THIRD ROW Phrasing 

	1. Shortens every note in the selection by a specified number
	of ticks.

	2. Shortens every note in the selection by a specified percent
	of the notes duration.

	3. Shortens the duration of each succeeding note in the
	selection by a linearly	increasing number of ticks so that the
	duration of the last note in the selection is shortened by a
	specified number of ticks.

	4. Shortens the duration of each succeeding note in the
	selection by a linearly	increasing percentage of its initial
	duration so that the duration of the last note in the selection
	is shortened by a specified percentage.

	NOTES, THIRD ROW:
	In all cases the number ticks or percentage may be set negative
	providing the opposite effect.

	For selections 3 and 4 the notes in the selection should be
	monophonic--constitute and melodic line.
	
    FORTH ROW Linear Rubato

	1. Shortens the duration of the notes at the start of the
	selection and lengthens	those at the end.  The increase in
	duration from note to note is linear and the duration of the
	selection as a whole is unchanged.  The magnitude of the effect
	is specified over a range of -10 to +10.

	2.  As in 1 above this shortens the duration of the notes at
	the start of the selection and lengthens those at the end.
	However the effect is graded in so that there is no abrupt
	change of tempo	with the first note. Thus, over the selection
	the durations decrease from their initial values and then
	increase as above.  The range of the gradation over the 
	selection is specified as over the whole, over the first half,
	over the first third.

	3.  As in 2 above except the gradation increases towards the 
	end of the selection such that there is no abrupt change in 
	tempo at the of the effect.

    FIFTH ROW Non-Linear Rubato

	1, 2, 3, Same as Fourth row except that the change in duration 
	from note to note is non-linear.

	NOTES On Rubato;

	All these effects leave the duration of the selection unchanged.
	This makes them local tempo changes in two senses.  First, they 
	need not be applied to all voices as they will come out 'even' 
	with the other voices. Second, even if applied to all voices they 
	will not change the underlying pulse of the music unless applied 
	over long passages

	You can apply different rubatos to the same selection to achieve
	varied effects.

	The difference between a rubato intensity of -5 and +5 is that 
	the final notes of a +5 selection are lengthened while those of a 
	-5 are shortened.

    FIFTH ROW RIGHT HAND SIDE

	4. Changes the channel number of channel data.

EnigmaPad PAGE TWO Controller values.

    FIRST ROW

	1. Creates a controller datum on the "articulation" channel 
	placing it two ticks before the selected note.

	2. Partitions the note selection into groups of the specified 
	lenght.	The first note (the head) of each group is given the head 
	value the remaining notes of each group are given another value 
	(the body value) A note is "given a value" by inserting a value 
	in the articulation controller channel just before the beginning 
	of the note.

	3..............

	4. Groups the selected notes as specified.  Reads the file 
	"Ctrlr Array N Data.CAL" and repeats the sequence of values 
	therein	over the groups inserting each value two ticks before its 
	corresponding note.  Element indicies grater than the number of 
	elements in the group are ignored. That is, if the group is N 
	notes long there must be at least N sequential value assignments 
	in the file "Ctrlr Array N Data.CAL" as in the example that 
	follows (n = 5) :
        ( int iCTLR_SeqnVal1 0 )
        ( int iCTLR_SeqnVal2 44 )
        ( int iCTLR_SeqnVal3 66 )
        ( int iCTLR_SeqnVal4 96 )
        ( int iCTLR_SeqnVal5 22 )

	RIGHT HAND SIDE
	6. Aligns the ends of notes with the starts of their following
        notes.  Same as on first page.

    SECOND ROW

	1. Scales the selected notes' velocity values by a specified 
	percent.

	2. Scales the selected controller values by a specified percent.

	3. Scales the selected controller values over a gradient ranging
	from an initial percent to a final percent.

	4. Scales the selected controller values over a specified range.


	RIGHT HAND SIDE
	6. Sluring--Lengthens each note by the specified number of ticks.
        >>>>>Should be rewritten to overlap by specified number of ticks.
	Same as on first page.

    THIRD ROW

	1. Removes duplicate controller data within the selection.

	2. A parameterized controller data thinning routine that never 
	removes	data that is a local extrema.

	3. Associates the controller data of one note with others.
	Select notes.  Holding the shift key select controller data 
	associated with the first note.  The controller data will be 
	associated with the other notes in the selection.  NOTE Existing 
	controller data will not be deleted.

	RIGHT HAND SIDE
	6.  Glisando--Notes in selection must constitute a line (melodic 
	intervals only).  If two consecutive notes do not overlap (are 
	not slurd) the Glisando value i set to 0. Otherwise the value is
	proprotional to the size of the interval as constrained by the
	specified values.


Please feel free to use and alter these programs as you see fit. I only ask that you
do not redistribute them.
